d92b29548cb3de1b553c15255abd18b6b3f433b0,rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java,JAXRSInInterceptor,processRequest,#Message#,102
Before Change
boolean operChecked = false;
List<ProviderInfo<RequestHandler>> shs = ProviderFactory.getInstance(message).getRequestHandlers();
for (ProviderInfo<RequestHandler> sh : shs) {
String newAcceptTypes = (String)message.get(Message.ACCEPT_CONTENT_TYPE);
if (!acceptTypes.equals(newAcceptTypes) || (ori == null && !operChecked)) {
acceptTypes = newAcceptTypes;
acceptContentTypes = JAXRSUtils.sortMediaTypes(newAcceptTypes);
After Change
}
private void processRequest(Message message) {
if (message.getExchange().get(OperationResourceInfo.class) != null) {
// it's a suspended invocation;
return;
}
RequestPreprocessor rp = ProviderFactory.getInstance(message).getRequestPreprocessor();
if (rp != null) {
rp.preprocess(message, new UriInfoImpl(message, null));
if (message.getExchange().get(Response.class) != null) {
return;
}
}
String requestContentType = (String)message.get(Message.CONTENT_TYPE);
if (requestContentType == null) {
requestContentType = "*/*";
}
String rawPath = HttpUtils.getPathToMatch(message, true);
//1. Matching target resource class
Service service = message.getExchange().get(Service.class);
List<ClassResourceInfo> resources = ((JAXRSServiceImpl)service).getClassResourceInfos();
String acceptTypes = HttpUtils.getProtocolHeader(message, Message.ACCEPT_CONTENT_TYPE, null);
if (acceptTypes == null) {
acceptTypes = "*/*";
message.put(Message.ACCEPT_CONTENT_TYPE, acceptTypes);
}
List<MediaType> acceptContentTypes = JAXRSUtils.sortMediaTypes(acceptTypes);
message.getExchange().put(Message.ACCEPT_CONTENT_TYPE, acceptContentTypes);
MultivaluedMap<String, String> values = new MetadataMap<String, String>();
ClassResourceInfo resource = JAXRSUtils.selectResourceClass(resources,
rawPath,
values,
message);
if (resource == null) {
org.apache.cxf.common.i18n.Message errorMsg =
new org.apache.cxf.common.i18n.Message("NO_ROOT_EXC",
BUNDLE,
rawPath);
LOG.warning(errorMsg.toString());
throw new WebApplicationException(Response.Status.NOT_FOUND);
}
message.getExchange().put(JAXRSUtils.ROOT_RESOURCE_CLASS, resource);
String httpMethod = HttpUtils.getProtocolHeader(message, Message.HTTP_REQUEST_METHOD, "POST");
OperationResourceInfo ori = null;
boolean operChecked = false;
List<ProviderInfo<RequestHandler>> shs = ProviderFactory.getInstance(message).getRequestHandlers();
for (ProviderInfo<RequestHandler> sh : shs) {
String newAcceptTypes = HttpUtils.getProtocolHeader(message, Message.ACCEPT_CONTENT_TYPE, "*/*");
if (!acceptTypes.equals(newAcceptTypes) || (ori == null && !operChecked)) {
acceptTypes = newAcceptTypes;
acceptContentTypes = JAXRSUtils.sortMediaTypes(newAcceptTypes);